Linux 无界面使用 selenium

最近想在 centOS 运行 selenium 抓数据,但是装图形界面太占资源了,于是就找了下无界面运行 selenium 的方法。

Google 之后找到了 Xvfb。Xvfb 是什么呢,他的名称是 virtual framebuffer X server for X Version 11, Xvfb 新建虚拟的X窗口,并且不会把图像输出到屏幕上,也就是说,就算你的电脑沒有启动 Xwindow , 你仍然可以执行任何图形程序。

1
# 安装 Xvfb
yum install xorg-x11-server-Xvfb

# 安装 firefox 和 selenium
yum install firefox
pip install selenium

# 运行 Xvfb
Xvfb :0 -screen 0 800x600x24 >> /tmp/Xvfb.out 2>&1 &
export DISPLAY=:0

安装设置好 Xvfb 后,只要像在图形界面上一样使用 selenium 就可以了。

示例代码 (python)

1
2
3
4
5
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.baidu.com')
print browser.title
browser.quit()